#ifndef __BITINDEX_H__
#define __BITINDEX_H__
#include <common.h>

#ifdef __cplusplus
extern "C"
{
#endif
GEAR_API int ffs64Msb(UINT64 i);
GEAR_API int ffs64Lsb(UINT64 i);
GEAR_API int ffs32Lsb(UINT32 i);
GEAR_API int ffs32Msb(UINT32 i);

#define ffsLsb_autosize(i) \
    ((sizeof(i) == 8) ? ffs64Lsb(i) : ffs32Lsb((UINT32)i))
#define ffsMsb_autosize(i) \
    ((sizeof(i) == 8) ? ffs64Msb(i) : bitHigIndex32((UINT32)i))
#define FFS_MSB(i)		ffs32Msb(i)
#define FFS_LSB(i)      ffs32Lsb(i)
#ifdef __cplusplus
}
#endif

#endif
